#ifndef __TRIAXIAL_TYPES_H
#define __TRIAXIAL_TYPES_H

#include "rpstm32.h"

typedef enum {
	X = 0,
	Y,
	Z
} axis_e;

typedef union {
	struct {
		int16_t x;
		int16_t y;
		int16_t z;
	};
	int16_t axis[3];
} Axis3i16;

typedef union {
	struct {
		int32_t x;
		int32_t y;
		int32_t z;
	};
	int32_t axis[3];
} Axis3i32;

typedef union {
	struct {
		int64_t x;
		int64_t y;
		int64_t z;
	};
	int64_t axis[3];
} Axis3i64;

typedef union {
	struct {
		float x;
		float y;
		float z;
	};
	float axis[3];
} Axis3f;

typedef union {
	struct {
		float Pitch;
		float Roll;
		float Yaw;
	};
	float axis[3];
} Atti3f;

#endif
